Questions
9 of 14
1What does HNSW stand for, and at a high level, how does it achieve sub-linear approximate nearest-neighbor search?
2What do the HNSW parameters m and ef_construct control, and what trade-off do they represent?
3What does the query-time parameter ef (search breadth) control, and how would you use it to trade off recall against latency?
4Why might increasing m significantly improve recall on one dataset but barely help - or even hurt latency - on another?
5Why does Qdrant set m: 0 on a named vector used purely for reranking (e.g. a ColBERT multivector)?
6What problem does vector quantization solve, and what is the fundamental trade-off it introduces?
7Compare scalar quantization, product quantization, and binary quantization in Qdrant in terms of compression ratio and accuracy impact.
8What are oversampling and rescoring in the context of binary quantization, and why are they necessary?
9What newer quantization options - beyond the original scalar, product, and binary trio - has Qdrant introduced to fine-tune the compression/accuracy curve?
10What is Inline Storage, and how does embedding quantized vectors directly into HNSW graph nodes improve disk-based search performance?
11What is a multivector point, and how does it differ from a point with several named vectors?
12How does late-interaction scoring (as used by ColBERT-style models) with MaxSim differ from comparing two single dense vectors?
13Why is late-interaction reranking typically applied to a small candidate set rather than the entire collection?
14Design a three-stage retrieval pipeline using dense retrieval, sparse retrieval, fusion, and ColBERT reranking. What does each stage contribute?
09 / 14

What newer quantization options - beyond the original scalar, product, and binary trio - has Qdrant introduced to fine-tune the compression/accuracy curve?

Sub-byte and asymmetric quantization extend the curve

Qdrant has expanded its quantization menu beyond the original scalar/product/binary trio in recent releases, primarily to fill the gap between int8 (4x) and binary (32x), and to reduce the accuracy cost of binary without giving up its memory savings. The most significant additions are sub-byte quantization - schemes that use fewer than 8 bits per dimension but more than 1, such as 1.5-bit and 2-bit variants - and asymmetric quantization, where the query vector is kept in full precision while the stored vectors are quantized. Sub-byte schemes let you pick a point on the compression curve between scalar and binary, which matters because the jump from 4x to 32x is very large and most datasets do not need to go all the way. Asymmetric quantization changes the error model: by keeping the query in float32, the distance computation is asymmetric (one operand full precision, one quantized), which can substantially reduce the quantization error compared to quantizing both sides, at the cost of a slightly slower distance computation.

The mechanism for sub-byte quantization is essentially the same as scalar quantization - a linear map from float to a small integer grid - but the grid is coarser (4 or 16 levels instead of 256). The trade-off is more accuracy loss than int8 but less than binary, with memory savings in between. Asymmetric quantization is a different idea: instead of approximating both query and stored vector with the same low-precision grid, you approximate only the stored side and compute the distance using the full-precision query. This reduces the error substantially because the query is often the dominant source of error in symmetric quantization - the query is a single vector used across many comparisons, so its quantization error is systematic rather than averaging out. By keeping the query exact, you remove that systematic error. The cost is that the distance computation is no longer symmetric, so it cannot use the same optimized SIMD kernels as symmetric quantization, and it may be slower per comparison.

  1. 1

    Sub-byte (1.5-bit, 2-bit): intermediate compression between int8 and binary, with intermediate accuracy. Useful when binary is too lossy and int8 does not save enough memory.

  2. 2

    Asymmetric: query in full precision, stored vectors quantized. Reduces quantization error at the cost of a slower distance computation.

  3. 3

    Combinations: asymmetric can be applied on top of scalar, product, or binary schemes in some configurations, giving another axis of tuning.

  4. 4

    Availability: not all schemes are available on all vector types or all collection configurations. Check the release notes for your version before designing around a specific option.

The trade-off with these newer options is complexity and version dependence. The original trio is well understood and widely documented; the newer schemes are more sensitive to the specific version of Qdrant you are running and to the data distribution. My advice is to treat the newer schemes as advanced tuning knobs to reach for only after you have exhausted the basics: measure SQ first, then BQ with oversampling and rescoring, and only then look at sub-byte or asymmetric schemes if you need a point on the curve that neither SQ nor BQ can hit. The common mistake is jumping to the newest option because it sounds better, without benchmarking it against SQ on your own data. On many datasets, SQ at 4x with a slightly higher m outperforms a more exotic scheme at 8x with a lower m. The other mistake is assuming these options are universally available; they are version-dependent and sometimes limited to specific distance metrics or vector types. Version note: this is the area of Qdrant that has changed the most in recent releases, so any specific claim about sub-byte or asymmetric quantization should be verified against the release notes and the actual schema of your deployed version before you rely on it.

javascript

Version-dependent: this is the single most version-sensitive area of Qdrant covered in this bank. Sub-byte schemes, asymmetric quantization, and the exact set of configurable fields have all changed across recent releases. Do not assume a scheme is available or behaves a certain way based on a blog post or an older version of the docs. Read the release notes for your specific version, check the collection config at runtime, and benchmark on your own data before committing to a scheme in production.

Difficulty: 8/10
Topics: Quantization, Scalar Quantization, Binary Quantization

Scenario Questions

0-2 years experience
  1. 1

    You read about 2-bit quantization and want to try it on your collection. What is the first thing you check before assuming it is available?

  2. 2

    A teammate says asymmetric quantization is strictly better than symmetric because it keeps the query exact. Explain the trade-off they are missing.

2-5 years experience
  1. 1

    You need 8x compression and int8 gives only 4x while binary gives 32x with too much accuracy loss. Propose a scheme that lands near 8x and explain how you would validate it.

  2. 2

    You try a sub-byte scheme on your collection and recall is worse than expected. List the possible causes and how you would isolate them.

5-8 years experience
  1. 1

    Design a quantization strategy that combines asymmetric quantization with oversampling and rescoring to hit a specific recall target at the lowest possible memory. What is the tuning order?

  2. 2

    You must support a collection where some vectors are normalized (cosine) and some are not (Euclidean). How does that affect your choice of quantization scheme, and what would you do differently for each?

8+ years experience
  1. 1

    Derive the expected error of asymmetric scalar quantization versus symmetric scalar quantization for cosine similarity on normalized vectors, and identify the regime where the asymmetric error is meaningfully smaller.

  2. 2

    You are evaluating a new quantization scheme proposed by a vendor. Describe the benchmark you would run to decide whether to adopt it, including the controls, the metrics, and the decision criteria.

Follow-up Questions

  • Under what conditions would asymmetric quantization give a meaningful recall improvement over symmetric quantization, and when would the slower distance computation not be worth it?
  • How would you design a benchmark to choose between sub-byte quantization and a higher m with int8, given the same effective memory budget?